Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
JSON.parse no funciona cuando uso "éxito" como clave

Estoy trabajando en un proyecto en el que uso muchas solicitudes http. La mayoría de las veces, el servidor responderá como un json con:

 {"error": "Request invalid"}

o

 {"success": "Request successful"}

La página del lado del servidor que devuelve la respuesta se ve así:

 <?php header('Content-type: application/json'); $data = []; if (isset($_POST['action']) { if ($_POST['action'] == 'function_one') { /* Arbitary Function... */ $data['success'] = 'This works...'; } elseif ($_POST['action'] == 'function_two') { /* Arbitary Function... */ $data['error'] = 'Example error'; } elseif ($_POST['action'] == 'function_that_is_not_working') { $data['success'] = 'This unexpectedly does not interpret correctly...'; } } $post_data = json_encode($data); print_r($post_data); ?>

El archivo javascript hace la solicitud http y maneja los datos de manera similar a:

 if (xml_http.readyState == 4 && xml_http.status == 200) { try { console.log(JSON.parse(xml_http.responseText)); return JSON.parse(xml_http.responseText); } catch (e) { console.log(xml_http.responseText); return xml_http.responseText; } }

Así que todo esto funciona absolutamente bien, tengo múltiples funciones, todas usando el mismo código sin ningún problema. El problema que tengo es que tengo una acción específica que hace una solicitud, si configuro $data['success'] no se interpreta como un objeto JSON, sino como una cadena. Si configuro la clave como cualquier otra cosa, funciona bien.

He intentado comentar la función en caso de que haya algún eco inesperado, etc. La cadena JSON es una cadena JSON válida, es solo esta acción cuando se usa la clave de éxito que JSON.parse no lo ve como JSON válido, así que solo emite la cadena.

¿Me estoy perdiendo algo obvio? ¿Hay otras formas en que podría probar esto?

Editar Después de jugar un poco más, descubrí que no había nada malo con la respuesta, ni con el JSON.parse. Tuve un problema con parte del script después de causar un error. Solución: mire siempre el panorama general y los procesos posteriores.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda